library(magrittr)
library(tidyverse)
library(Seurat)
library(readxl)
library(cowplot)
library(colorblindr)
library(viridis)
library(magick, lib.loc = "/home/uhlitzf/miniconda3/lib/R/library")
library(ggpubr)
## load global vars: 
source("_src/global_vars.R")

# meta_tbl
# clrs
# markers_v6
# markers_v6_super
# cell_type_super_lookup
## load full seurat objects with expression data
# seu_obj_tc <- read_rds("/work/shah/uhlitzf/data/SPECTRUM/freeze/v5/T.cell_processed_filtered_sub.rds")
# seu_obj_cc <- read_rds(paste0("/work/shah/uhlitzf/data/SPECTRUM/freeze/v5/Ovarian.cancer.cell_processed_filtered.rds"))
seu_obj_cc <- read_rds("/work/shah/uhlitzf/data/SPECTRUM/freeze/v6/Ovarian.cancer.cell_processed_filtered.rds")
markers_tbl <- read_tsv("/work/shah/uhlitzf/data/SPECTRUM/freeze/v6/Ovarian.cancer.cell_highqc_markers_02.tsv")

# plot_data <- FetchData(seu_obj_cc, c("sample", grep("^HLA", rownames(seu_obj_cc), value = T))) %>%
#   as_tibble() %>% 
#   gather(gene, value, -sample) %>% 
#   left_join(meta_tbl, by = "sample") %>% 
#   group_by(consensus_signature, gene, sample, patient_id_short) %>% 
#   summarise(value = median(value))
# 
# ggplot(plot_data) + 
#   geom_tile(aes(sample, gene, fill = value)) +
#   scale_fill_viridis() +
#   facet_grid(~consensus_signature, scales = "free_x", space = "free_x")
plot_data <- cbind(cell_id = colnames(seu_obj_cc), FetchData(seu_obj_cc, c("umapharmony_1", "umapharmony_2", "umappca_1", "umappca_2", "RNA_snn_res.0.2", "sample", "cluster_label", grep("pathway", colnames(seu_obj_cc@meta.data), value = T)))) %>% 
  as_tibble() %>% 
  left_join(meta_tbl, by = "sample") %>% 
  filter(!is.na(consensus_signature))

base_umap <- ggplot(plot_data) +
  coord_fixed() +
  NoAxes() +
  theme(legend.position = c(0, 1),
        legend.justification = c("left", "top"),
        legend.box.just = "left",
        legend.margin = margin(1, 1, 1, 1),
        #panel.border = element_rect(linetype = 1, color = "black", size = 1),
        legend.text = element_text(size = 14, margin = margin(0, 10, 0, 0)),
        legend.spacing.x = unit(0, "npc"), 
        legend.title = element_blank(),
        plot.title = element_text(hjust = 0.5, vjust = 0.5, face = "plain", size = 22))

arrow <- arrow(angle = 20, type = "closed", length = unit(0.1, "npc"))
umap_coord_anno <- ggplot(tibble(group = c("UMAP1", "UMAP2"),
                                 x = c(0, 0), xend = c(1, 0),
                                 y = c(0, 0), yend = c(0, 1),
                                 lx = c(0.5, -0.15), ly = c(-0.15, 0.5),
                                 angle = c(0, 90))) +
  geom_segment(aes(x, y, xend = xend, yend = yend, group = group),
               arrow = arrow, size = 1, lineend = "round") +
  geom_text(aes(lx, ly, label = group, angle = angle), size = 4) +
  theme_void() +
  coord_fixed(xlim = c(-0.3, 1), ylim = c(-0.3, 1))

add_umap_coord <- function(gg_obj) {
  p <- ggdraw() + 
    draw_plot(gg_obj, x = 0, y = 0, width = 1, height = 1) +
    draw_plot(umap_coord_anno, x = -0.015, y = -0.02, width = 0.2, height = 0.2)
  return(p)
}
pt.size <- 0.1
pt.size2 <- 0.2
pt.size.mini <- 0.01
pt.alpha <- 0.05
pt.alpha.mini <- 0.02

median_tbl <- plot_data %>%
  group_by(patient_id_short) %>% 
  summarise(umappca_1 = median(umappca_1), 
            umappca_2 = median(umappca_2))

umap_pca_mutsig <- base_umap + 
  geom_point(aes(umappca_1, umappca_2, color = consensus_signature), 
             size = pt.size, alpha = pt.alpha) +
  geom_text(aes(umappca_1, umappca_2, label = patient_id_short), data = median_tbl) + 
  scale_color_manual(values = clrs$consensus_signature) +
  guides(color = guide_legend(override.aes = list(size = 4, alpha = 1),
                              ncol = 1, 
                              label.position = "right")) +
  labs(title = "Mutational signature")

umap_mutsig <- base_umap + 
  geom_point(aes(umapharmony_1, umapharmony_2, color = consensus_signature), 
             size = pt.size2, alpha = pt.alpha) +
  scale_color_manual(values = clrs$consensus_signature) +
  guides(color = guide_legend(override.aes = list(size = 4, alpha = 1),
                              ncol = 1, 
                              label.position = "right")) +
  guides(color = F) + 
  labs(title = "")

umap_pca_cluster <- base_umap + 
  geom_point(aes(umappca_1, umappca_2, color = cluster_label), 
             size = pt.size, alpha = pt.alpha) +
  geom_text(aes(umappca_1, umappca_2, label = patient_id_short), data = median_tbl) + 
  scale_color_manual(values = clrs$cluster_label$Ovarian.cancer.cell) +
  guides(color = guide_legend(override.aes = list(size = 4, alpha = 1),
                              ncol = 1, 
                              label.position = "right")) +
  labs(title = "Cluster")

umap_cluster <- base_umap + 
  geom_point(aes(umapharmony_1, umapharmony_2, color = cluster_label), 
             size = pt.size2, alpha = pt.alpha) +
  scale_color_manual(values = clrs$cluster_label$Ovarian.cancer.cell) +
  guides(color = guide_legend(override.aes = list(size = 4, alpha = 1),
                              ncol = 1, 
                              label.position = "right")) +
  guides(color = F) + 
  labs(title = "")

cluster_legend <- cowplot::get_legend(umap_pca_cluster)

umap_pca_jak_stat <- base_umap + 
  # geom_point(aes(umappca_1, umappca_2), color = "grey80",
  #            size = pt.size, alpha = pt.alpha, 
  #            data = filter(plot_data, JAK.STAT.pathway <= 0)) +
  geom_point(aes(umappca_1, umappca_2, color = JAK.STAT.pathway), 
             size = pt.size, alpha = pt.alpha, 
             data = mutate(plot_data, JAK.STAT.pathway = ifelse(JAK.STAT.pathway > 4, 4, JAK.STAT.pathway))) +
  geom_text(aes(umappca_1, umappca_2, label = patient_id_short), data = median_tbl) + 
  scale_color_gradientn(colours = viridis(9), breaks = c(0, 2, 4), limits = c(min(plot_data$JAK.STAT.pathway), 4), labels = c(0, 2, "≥4")) +
  labs(title = "JAK-STAT signaling")

umap_jak_stat <- base_umap + 
  # geom_point(aes(umapharmony_1, umapharmony_2), color = "grey80",
  #            size = pt.size, alpha = pt.alpha, 
  #            data = filter(plot_data, JAK.STAT.pathway <= 0)) +
  geom_point(aes(umapharmony_1, umapharmony_2, color = JAK.STAT.pathway), 
             size = pt.size2, alpha = pt.alpha, 
             data = mutate(plot_data, JAK.STAT.pathway = ifelse(JAK.STAT.pathway > 4, 4, JAK.STAT.pathway))) +
  scale_color_gradientn(colours = viridis(9), breaks = c(0, 2, 4), limits = c(min(plot_data$JAK.STAT.pathway), 4), labels = c(0, 2, "≥4")) +
  guides(color = F) + 
  labs(title = "")
source("_src/comp_plot.R")

cluster_comp <- plot_data %>%
  mutate(sort_short_x = str_replace_all(sort_short, "U", "CD45-")) %>% 
  mutate(sample_id = sample) %>% 
  group_by(cluster_label, consensus_signature, sample_id, sort_short_x, tumor_supersite, therapy) %>%
  tally %>%
  group_by(consensus_signature, sample_id, sort_short_x, tumor_supersite, therapy) %>%
  mutate(nrel = n/sum(n)*100) %>%
  ungroup %>%
  mutate(cell_type = "Ovarian.cancer.cell")

plist <- default_comp_grid_list(filter(cluster_comp, sort_short_x == "CD45-"),
                                cluster_label, "Cancer.cell.3", cluster_label,
                                vec_plot = F, site_box = F, 
                                super_type = "Ovarian.cancer.cell")

pcomp_grid_p_full <- plot_grid(plotlist = plist,
                               ncol = 1, align = "v",
                               rel_heights = c(0.25, 0.25, 0.4))

pcomp_grid_p_full

cancer_grid_pca <- ggdraw() +
  draw_plot(add_umap_coord(umap_pca_mutsig), 
            x = 0, y = 0, width = 0.25, height = 1) +
  draw_plot(add_umap_coord(umap_pca_cluster + guides(color = F)), 
            x = 0.25, y = 0, width = 0.25, height = 1) +
  draw_grob(cluster_legend, x = 0.5, y = -0.15, height = 1) +
  draw_plot(add_umap_coord(umap_pca_jak_stat), x = 0.7, y = 0, width = 0.25, height = 1)

cancer_grid <- ggdraw() +
  draw_plot(add_umap_coord(umap_mutsig), 
            x = 0, y = 0, width = 0.25, height = 1) +
  draw_plot(add_umap_coord(umap_cluster + guides(color = F)), 
            x = 0.25, y = 0, width = 0.25, height = 1) +
  draw_plot(pcomp_grid_p_full,
            x = 0.5, y = 0, width = 0.18, height = 1) +
  draw_plot(add_umap_coord(umap_jak_stat), x = 0.7, y = 0, width = 0.25, height = 1)

cancer_grid_pca

cancer_grid

# ggsave("_fig/003_cancer_cell/003_umap_grid.pdf", cancer_grid, width = 20, height = 5)
ggsave("_fig/003_cancer_cell/003_umap_grid_pca.png", cancer_grid_pca, width = 20, height = 5)
ggsave("_fig/003_cancer_cell/003_umap_grid.png", cancer_grid, width = 20, height = 5)

1 Differential pathway expression in cancer cells

Are there certain pathways activated in cancer cells…

set.seed(42)
sampled_cell_ids <- sample(colnames(seu_obj_cc), 10000)
seu_obj_cc_sub <- subset(seu_obj_cc, cells = sampled_cell_ids)

plot_data <- FetchData(seu_obj_cc, c("umapharmony_1", "umapharmony_2", "sample", "cluster_label", grep("pathway", colnames(seu_obj_cc@meta.data), value = T))) %>%
  as_tibble() %>%
  gather(pathway, score, -c(1:4)) %>% 
  left_join(meta_tbl, by = "sample") %>%
  filter(sort_short == "CD45-", therapy == "pre-Rx") %>% 
  mutate(pathway = str_remove_all(pathway, "\\.pathway")) %>% 
  mutate(cluster_label = str_remove_all(cluster_label, "\\.cell"))

cut_value <- 2
pathway_summary_wrapper <- . %>% 
  summarise(mean_score = mean(score),
            median_score = median(score)) %>% 
  mutate(median_cut = ifelse(median_score > cut_value, cut_value, 
                             ifelse(median_score < -cut_value, -cut_value, 
                                    median_score))) %>% 
  mutate(mean_cut = ifelse(mean_score > cut_value, cut_value, 
                           ifelse(mean_score < -cut_value, -cut_value, 
                                  mean_score)))


# plot_data_summary_patient <- plot_data %>% 
#   group_by(patient_id_short, consensus_signature, cluster_label, 
#            pathway, tumor_supersite) %>% 
#   pathway_summary_wrapper
# 
# plot_data_summary_mutsig <- plot_data %>% 
#   group_by(consensus_signature, pathway) %>% 
#   pathway_summary_wrapper
# 
# plot_data_summary_mutsig_cluster <- plot_data %>% 
#   group_by(consensus_signature, cluster_label, pathway) %>% 
#   pathway_summary_wrapper

plot_data_summary_cluster <- plot_data %>%
  group_by(cluster_label, pathway) %>%
  pathway_summary_wrapper

plot_data_summary_mutsig_patient <- plot_data %>% 
  group_by(consensus_signature, patient_id_short, pathway) %>% 
  pathway_summary_wrapper
common_heat_layers <- list(
  scale_fill_gradient2(low = scales::muted("blue"), high = scales::muted("red"), 
                       na.value = "grey10", 
                       breaks = c(-cut_value, 0, cut_value), 
                       labels = c(paste0("≤-", cut_value), "0", paste0("≥", cut_value)),
                       limits = c(-cut_value, cut_value)),
  theme(axis.text.x = element_text(angle = 60, hjust = 1, vjust = 1),
        axis.ticks = element_blank(),
        axis.line = element_blank(),
        axis.title = element_blank(),
        plot.margin = margin(0, 0, 0, 0))
)

# ggplot(plot_data_summary_patient) + 
#   geom_tile(aes(cluster_label, patient_id_short, fill = median_cut)) +
#   facet_grid(consensus_signature~pathway, scales = "free", space = "free") +
#   common_heat_layers
#   
# ggplot(plot_data_summary_mutsig_cluster) + 
#   geom_tile(aes(pathway, cluster_label, fill = median_cut)) +
#   facet_grid(~consensus_signature, scales = "free", space = "free") +
#   common_heat_layers   
# 
# ggplot(plot_data_summary_mutsig) + 
#   geom_tile(aes(consensus_signature, pathway, fill = median_score)) +
#   common_heat_layers

pw_plot1 <- ggplot(mutate(plot_data_summary_cluster, facet_helper = "")) +
  geom_tile(aes(cluster_label, pathway, fill = mean_score)) +
  common_heat_layers +
  facet_grid(~facet_helper, scales = "free", space = "free") + 
  labs(x = "Cluster", y = "Pathway", fill = "PROGENy\nscore") +
  scale_fill_gradient2(low = scales::muted("blue"), high = scales::muted("red"), 
                       na.value = "grey10", 
                       breaks = c(-cut_value, 0, cut_value), 
                       labels = c(paste0("≤-", cut_value), "0", paste0("≥", cut_value))) +
  theme(axis.text.x = element_blank())

pw_plot1_anno <- ggplot(mutate(plot_data_summary_cluster, facet_helper = "")) +
  geom_tile(aes(cluster_label, facet_helper, fill = cluster_label)) +
  common_heat_layers + 
  scale_fill_manual(values = clrs$cluster_label$Ovarian.cancer.cell %>% setNames(str_remove_all(names(.), "\\.cell"))) +
  facet_grid(~facet_helper, scales = "free", space = "free") +
  theme(axis.text.y = element_blank(),
        strip.text = element_blank()) +
  guides(fill = F)
  
pw_plot2 <- ggplot(plot_data_summary_mutsig_patient) + 
  geom_tile(aes(patient_id_short, pathway, fill = mean_cut)) +
  facet_grid(~consensus_signature, scales = "free", space = "free") + 
  common_heat_layers +
  labs(x = "Patient", y = "", fill = "PROGENy\nscore") +
  theme(axis.text.x = element_blank())

pw_plot2_anno <- ggplot(mutate(plot_data_summary_mutsig_patient, facet_helper = "")) +
  geom_tile(aes(patient_id_short, facet_helper, fill = consensus_signature)) +
  common_heat_layers + 
  scale_fill_manual(values = clrs$consensus_signature) +
  facet_grid(~consensus_signature, scales = "free", space = "free") + 
  theme(axis.text.y = element_blank(),
        strip.text = element_blank()) +
  guides(fill = F)

pw_grid <- plot_grid(pw_plot1 + guides(fill = F), ggdraw(), pw_plot2 + guides(fill = F), 
                     pw_plot1_anno, ggdraw(), pw_plot2_anno,
                     nrow = 2, align = "v", axis = "lrtb",
                     rel_widths = c(0.25, 0.05, 0.7), rel_heights = c(0.7, 0.3))

pw_boxplot <- filter(plot_data, pathway == "JAK.STAT") %>%
  mutate(patient_id_short = ordered(patient_id_short, levels = unique(arrange(plot_data_summary_mutsig_patient, pathway != "JAK.STAT", median_score)$patient_id_short))) %>% 
  ggplot() +
  geom_boxplot(aes(patient_id_short, score, color = consensus_signature)) +
  scale_color_manual(values = clrs$consensus_signature) +
  theme(axis.text.x = element_text(angle = 60, hjust = 1, vjust = 1)) +
  labs(x = "Patient", y = "JAK/STAT pathway\nPROGENy score")

pw_grid_full <- ggdraw() +
  draw_plot(pw_grid, x = 0, y = 0.5, width = 0.9, height = 0.5) +
  draw_grob(get_legend(pw_plot2), x = 0.92, y = 0.25) +
  draw_plot(pw_boxplot + guides(color = F), x = 0, y = 0, width = 0.65, height = 0.45)

pw_grid_full

ggsave("_fig/003_cancer_cell/003_pathway_heatmap.pdf", pw_grid_full, 
       width = 15, height = 10)

2 session info

devtools::session_info()
## ─ Session info ───────────────────────────────────────────────────────────────
##  setting  value                       
##  version  R version 3.6.2 (2019-12-12)
##  os       Debian GNU/Linux 10 (buster)
##  system   x86_64, linux-gnu           
##  ui       X11                         
##  language (EN)                        
##  collate  en_US.UTF-8                 
##  ctype    en_US.UTF-8                 
##  tz       Etc/UTC                     
##  date     2021-01-25                  
## 
## ─ Packages ───────────────────────────────────────────────────────────────────
##  ! package      * version    date       lib
##    abind          1.4-5      2016-07-21 [2]
##    ape            5.3        2019-03-17 [2]
##    assertthat     0.2.1      2019-03-21 [2]
##    backports      1.1.10     2020-09-15 [1]
##    bibtex         0.4.2.2    2020-01-02 [2]
##    Biobase        2.46.0     2019-10-29 [2]
##    BiocGenerics   0.32.0     2019-10-29 [2]
##    bitops         1.0-6      2013-08-17 [2]
##    broom          0.7.2      2020-10-20 [1]
##    callr          3.4.2      2020-02-12 [1]
##    car            3.0-8      2020-05-21 [1]
##    carData        3.0-4      2020-05-22 [1]
##    caTools        1.17.1.4   2020-01-13 [2]
##    cellranger     1.1.0      2016-07-27 [2]
##    cli            2.0.2      2020-02-28 [1]
##    cluster        2.1.0      2019-06-19 [3]
##    codetools      0.2-16     2018-12-24 [3]
##    colorblindr  * 0.1.0      2020-01-13 [2]
##    colorspace   * 1.4-2      2019-12-29 [2]
##    cowplot      * 1.0.0      2019-07-11 [2]
##    crayon         1.3.4      2017-09-16 [1]
##    curl           4.3        2019-12-02 [2]
##    data.table     1.12.8     2019-12-09 [2]
##    DBI            1.1.0      2019-12-15 [2]
##    dbplyr         2.0.0      2020-11-03 [1]
##    desc           1.2.0      2018-05-01 [2]
##    devtools       2.2.1      2019-09-24 [2]
##    digest         0.6.25     2020-02-23 [1]
##    dplyr        * 1.0.2      2020-08-18 [1]
##    ellipsis       0.3.1      2020-05-15 [1]
##    evaluate       0.14       2019-05-28 [2]
##    fansi          0.4.1      2020-01-08 [2]
##    farver         2.0.3      2020-01-16 [1]
##    fitdistrplus   1.0-14     2019-01-23 [2]
##    forcats      * 0.5.0      2020-03-01 [1]
##    foreign        0.8-74     2019-12-26 [3]
##    fs             1.5.0      2020-07-31 [1]
##    future         1.15.1     2019-11-25 [2]
##    future.apply   1.4.0      2020-01-07 [2]
##    gbRd           0.4-11     2012-10-01 [2]
##    gdata          2.18.0     2017-06-06 [2]
##    generics       0.0.2      2018-11-29 [2]
##    ggplot2      * 3.3.2      2020-06-19 [1]
##    ggpubr       * 0.4.0      2020-06-27 [1]
##    ggrepel        0.8.1      2019-05-07 [2]
##    ggridges       0.5.2      2020-01-12 [2]
##    ggsignif       0.6.0      2019-08-08 [1]
##    globals        0.12.5     2019-12-07 [2]
##    glue           1.3.2      2020-03-12 [1]
##    gplots         3.0.1.2    2020-01-11 [2]
##    gridExtra      2.3        2017-09-09 [2]
##    gtable         0.3.0      2019-03-25 [2]
##    gtools         3.8.1      2018-06-26 [2]
##    haven          2.3.1      2020-06-01 [1]
##    hms            0.5.3      2020-01-08 [1]
##    htmltools      0.4.0      2019-10-04 [2]
##    htmlwidgets    1.5.1      2019-10-08 [2]
##    httr           1.4.2      2020-07-20 [1]
##    ica            1.0-2      2018-05-24 [2]
##    igraph         1.2.5      2020-03-19 [1]
##    irlba          2.3.3      2019-02-05 [2]
##    jsonlite       1.7.1      2020-09-07 [1]
##    KernSmooth     2.23-16    2019-10-15 [3]
##    knitr          1.26       2019-11-12 [2]
##    labeling       0.3        2014-08-23 [2]
##    lattice        0.20-38    2018-11-04 [3]
##    lazyeval       0.2.2      2019-03-15 [2]
##    leiden         0.3.1      2019-07-23 [2]
##    lifecycle      0.2.0      2020-03-06 [1]
##    listenv        0.8.0      2019-12-05 [2]
##    lmtest         0.9-37     2019-04-30 [2]
##    lsei           1.2-0      2017-10-23 [2]
##    lubridate      1.7.9.2    2020-11-13 [1]
##  P magick       * 2.4.0      2020-06-23 [?]
##    magrittr     * 2.0.1      2020-11-17 [1]
##    MASS           7.3-51.5   2019-12-20 [3]
##    Matrix         1.2-18     2019-11-27 [3]
##    memoise        1.1.0      2017-04-21 [2]
##    metap          1.2        2019-12-08 [2]
##    mnormt         1.5-5      2016-10-15 [2]
##    modelr         0.1.8      2020-05-19 [1]
##    multcomp       1.4-12     2020-01-10 [2]
##    multtest       2.42.0     2019-10-29 [2]
##    munsell        0.5.0      2018-06-12 [2]
##    mutoss         0.1-12     2017-12-04 [2]
##    mvtnorm        1.0-12     2020-01-09 [2]
##    nlme           3.1-143    2019-12-10 [3]
##    npsurv         0.4-0      2017-10-14 [2]
##    numDeriv       2016.8-1.1 2019-06-06 [2]
##    openxlsx       4.1.5      2020-05-06 [1]
##    pbapply        1.4-2      2019-08-31 [2]
##    pillar         1.4.6      2020-07-10 [1]
##    pkgbuild       1.0.6      2019-10-09 [2]
##    pkgconfig      2.0.3      2019-09-22 [1]
##    pkgload        1.0.2      2018-10-29 [2]
##    plotly         4.9.1      2019-11-07 [2]
##    plotrix        3.7-7      2019-12-05 [2]
##    plyr           1.8.5      2019-12-10 [2]
##    png            0.1-7      2013-12-03 [2]
##    prettyunits    1.1.1      2020-01-24 [1]
##    processx       3.4.2      2020-02-09 [1]
##    ps             1.3.2      2020-02-13 [1]
##    purrr        * 0.3.4      2020-04-17 [1]
##    R.methodsS3    1.7.1      2016-02-16 [2]
##    R.oo           1.23.0     2019-11-03 [2]
##    R.utils        2.9.2      2019-12-08 [2]
##    R6             2.4.1      2019-11-12 [1]
##    RANN           2.6.1      2019-01-08 [2]
##    rappdirs       0.3.1      2016-03-28 [2]
##    RColorBrewer   1.1-2      2014-12-07 [2]
##    Rcpp           1.0.4      2020-03-17 [1]
##    RcppAnnoy      0.0.16     2020-03-08 [1]
##    RcppParallel   4.4.4      2019-09-27 [2]
##    Rdpack         0.11-1     2019-12-14 [2]
##    readr        * 1.4.0      2020-10-05 [1]
##    readxl       * 1.3.1      2019-03-13 [2]
##    remotes        2.1.0      2019-06-24 [2]
##    reprex         0.3.0      2019-05-16 [2]
##    reshape2       1.4.3      2017-12-11 [2]
##    reticulate     1.14       2019-12-17 [2]
##    rio            0.5.16     2018-11-26 [1]
##    rlang          0.4.8      2020-10-08 [1]
##    rmarkdown      2.0        2019-12-12 [2]
##    ROCR           1.0-7      2015-03-26 [2]
##    rprojroot      1.3-2      2018-01-03 [2]
##    rstatix        0.6.0      2020-06-18 [1]
##    rstudioapi     0.11       2020-02-07 [1]
##    rsvd           1.0.3      2020-02-17 [1]
##    Rtsne          0.15       2018-11-10 [2]
##    rvest          0.3.6      2020-07-25 [1]
##    sandwich       2.5-1      2019-04-06 [2]
##    scales         1.1.0      2019-11-18 [2]
##    sctransform    0.2.1      2019-12-17 [2]
##    SDMTools       1.1-221.2  2019-11-30 [2]
##    sessioninfo    1.1.1      2018-11-05 [2]
##    Seurat       * 3.1.2      2019-12-12 [2]
##    sn             1.5-4      2019-05-14 [2]
##    stringi        1.5.3      2020-09-09 [1]
##    stringr      * 1.4.0      2019-02-10 [1]
##    survival       3.1-8      2019-12-03 [3]
##    testthat       2.3.2      2020-03-02 [1]
##    TFisher        0.2.0      2018-03-21 [2]
##    TH.data        1.0-10     2019-01-21 [2]
##    tibble       * 3.0.4      2020-10-12 [1]
##    tidyr        * 1.1.2      2020-08-27 [1]
##    tidyselect     1.1.0      2020-05-11 [1]
##    tidyverse    * 1.3.0      2019-11-21 [2]
##    tsne           0.1-3      2016-07-15 [2]
##    usethis        1.5.1      2019-07-04 [2]
##    uwot           0.1.5      2019-12-04 [2]
##    vctrs          0.3.5      2020-11-17 [1]
##    viridis      * 0.5.1      2018-03-29 [2]
##    viridisLite  * 0.3.0      2018-02-01 [2]
##    withr          2.3.0      2020-09-22 [1]
##    xfun           0.12       2020-01-13 [2]
##    xml2           1.3.2      2020-04-23 [1]
##    yaml           2.2.1      2020-02-01 [1]
##    zip            2.0.4      2019-09-01 [1]
##    zoo            1.8-7      2020-01-10 [2]
##  source                                 
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Github (clauswilke/colorblindr@1ac3d4d)
##  R-Forge (R 3.6.2)                      
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  Bioconductor                           
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.3)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
##  CRAN (R 3.6.2)                         
## 
## [1] /home/uhlitzf/R/lib
## [2] /usr/local/lib/R/site-library
## [3] /usr/local/lib/R/library
## 
##  P ── Loaded and on-disk path mismatch.